The present invention relates generally to tutorial systems for providing instruction in the operation of software products. Particularly, the invention pertains to a computer tutorial system wherein software product training is provided interactively by guiding the user, for example, through one or more examples or applications that can be created in and using the product. More particularly, the invention involves a computer implemented, interactive tutorial system providing online instruction in conjunction with a contemporaneously operating software product to, for example, create such examples or applications and the tutorial system further providing for the creation of such applications and examples in and using the product.
As software developers strive to provide ever more versatile and powerful products, the task of becoming proficient in the use and implementation of such products becomes increasingly difficult. Even for those users who consider themselves computer xe2x80x9cliteratexe2x80x9d, days and sometimes weeks of instruction may be required before the user is able to take full advantage of functional capabilities offered by many software products. In such cases, the quality of the instructional materials accompanying the software may be nearly as important as the product in ensuring ultimate user satisfaction.
Software instructional materials for prior art products fall into two general types. On one hand are product documentation materials, such as printed manuals and online product description files. These materials provide textual descriptions of operational features of the product. They may also include examples of product operations as well as example applications that can be created in and using the product. Although documentation of this nature may be adequate for reference purposes, such materials are not particularly suitable for providing initial instruction in the use of a product. Most users would rather use the product directly than spend hours reading ancillary instructional materials. Accordingly, a number of products follow a learn-by-doing approach using interactive tutorial materials, which represent a second category of instructional materials.
Unlike product documentation materials, tutorials provide instruction in a manner which gives the user an opportunity to gain practical experience in the context of solving actual problems. Both online and workbook-based tutorials have been proposed wherein the user is guided through a presentation of one or more examples or problems in a sequence of lessons. In workbook-based systems the student performs specified actions on the product in accordance with a lesson plan set forth in a printed workbook. Online systems work in a similar fashion except that the tutorial lessons are displayed sequentially on-screen. In addition, online tutorials typically include the capability of monitoring student actions and advising when a mistake has been made. Moreover, if the user requires assistance, a preprogrammed demonstration can be requested to show the correct action(s) to be taken. For these reasons, online tutorials represent the most promising avenue for providing instruction in the operation of software products.
Most prior art online tutorial systems allow users to interact with a simulation of the software product of interest. This approach to tutorial instruction is both inefficient and costly. The software designer must not only code and debug the application product itself but also the duplicative simulation code for the tutorial. The simulation code must be periodically updated and maintained as the product changes, all at additional time and cost. The effectiveness of simulation tutorials as a teaching vehicle is also open to question. Simulation tutorials provide only limited product interaction because the simulations can only emulate the user interface of the product and do not have full capabilities in processing user actions. The user is not afforded direct experience with the product and thus may be deprived of a full and accurate understanding of product characteristics. Because only a partial view of the product is provided, users are unable to explore other portions of the product or learn on their own beyond what the tutorial covers.
As a solution to the inefficiencies of simulation tutorials, several systems have been proposed wherein online tutorial instruction proceeds in conjunction with the operation of the product to be taught. The prior art includes interactive tutorials implemented in single task operating systems in which special hardware or software subsystems are required to control the environment and provide tutorial information. This special hardware and software includes such things as interrupts between the user and operating system, processing outside the operating system, and external information presentation hardware. As a result, the flexibility and efficiency of these tutorial products is relatively limited. For example, the information presentation function in many prior art tutorial systems is provided in a strict top down sequence which must be followed in the order set forth. No provision is made for selectively controlling the level of tutorial information detail presented as the student works through the lesson. In other cases, the input monitoring function of prior art tutorial systems is unduly restrictive insofar as literal input response from the student is required. No provision is made for allowing the student to provide input to the computer for performing tasks which are non critical to the product.
While certain of the foregoing disadvantages of prior art tutorial systems have been overcome to some extent by tutorial systems operating on multitasking operating systems using specialized software therefor which in combination allow for multiple processes operating in separate windows as well as interprocess communication (see, e.g., U.S. Pat. No. 5,535,422), a further disadvantage with many software product tutorial systems is that although those systems provide examples or applications along with relevant screen captures (whether static or dynamic) of how to use the product, they don""t xe2x80x9cwalkxe2x80x9d the user through the steps of using the product and produce an example or application in the software product that can actually be executed. Part of the problem lies in the fact that most software products do not provide a mechanism for an external process to interact with them dynamically.
Accordingly, there exists a need to provide an online tutorial system that is operable in conjunction with a software product of interest. This need offers a unique opportunity to improve upon prior art tutorial systems by offering characteristics and features not provided by the tutorial systems noted above. It would thus be advantageous to provide an interactive tutorial that can be used to create an example or application using and in the product which would be identical to one that was created by the user independently using the product.
Thus, it is desirable to provide a method, system and computer program product for providing an interactive tutorial that overcomes the foregoing and other disadvantages.
Accordingly, there is provided a method for providing an interactive tutorial of a software product comprising the steps of presenting tutorial content relating to the software product through a tutorial system; initiating a transfer of data to the software product, the data being associated with the tutorial and defining an application of the software product; transferring the data from the tutorial system to the software product upon the initiation of the data transfer; and processing of the data in the software product to render the application of the software product defined by the data. The above method may further comprise the step of providing a user interactivity element for initiating a transfer of the data and wherein initiating a transfer of the data is caused through activation of the user interactivity element. The user interactivity element may be a push button and activation of the user interactivity element comprises clicking the push button. Further, the method may be provided wherein the step of initiating a transfer of data to the software product comprises loading the data and establishing a connection with the software product. The software product may also comprise a World Wide Web Distributed Authority and Versioning industry standard (WebDAV) server and the connection is according to the WebDAV protocol. The method may also be provided wherein the loading is done by an applet. Also, the method may be provided wherein the step of processing of the data in the software product comprises receipt by the WebDAV server of the data and processing of the data by the WebDAV server for execution of commands and updating of information in the software product. The above methods also may be provided wherein the software product is a software application development product and the data defines a software application developed in the software application development product. And, the methods may further comprise the step of configuring the tutorial content based on information in the software product through data transfer to the tutorial system.
Further there is provided a program storage device, tangibly embodying computer readable program code, for causing a computer to perform the method steps of any one of claims 1 to 9.
There is also provided a computer program product comprising computer readable program code means therein for providing an interactive tutorial of a software product, the computer readable program code means in said computer program product comprising computer readable code means for presenting tutorial content relating to the software product through a tutorial system; computer readable code means for initiating a transfer of data to the software product, the data being associated with the tutorial and defining an application of the software product; computer readable code means for transferring the data from the tutorial system to the software product upon the initiation of the data transfer; and computer readable code means for processing of the data in the software product to render the application of the software product defined by the data. The computer program product may further comprise computer readable code means for providing a user interactivity element for initiating a transfer of the data and wherein the computer readable code means for initiating a transfer of the data is started through activation of the user interactivity element. The user interactivity element may also be a push button and activation of the user interactivity element comprises clicking the push button. The computer readable code means for initiating a transfer of data to the software product may also comprise computer readable code means for loading the data and establishing a connection with the software product. The computer program product may also be provided wherein the software product comprises a WebDAV server and the connection is according to the WebDAV protocol. Further, the loading may be done by an applet. Also, the computer program product may be provided wherein the computer readable code means for processing of the data in the software product comprises computer readable code means for receipt by the WebDAV server of the data and computer readable code means for processing of the data by the WebDAV server for execution of commands and updating of information in the software product. The above computer program product may also be provided wherein the software product is a software application development product and the data defines a software application developed in the software application development product. And, the foregoing computer program product may further comprise computer readable code means for configuring the tutorial content based on information in the software product through data transfer to the tutorial system.
There is further provided a computer system for providing an interactive tutorial of a software product comprising means for presenting tutorial content relating to the software product through a tutorial system; means for initiating a transfer of data to the software product, the data being associated with the tutorial and defining an application of the software product; means for transferring the data from the tutorial system to the software product upon the initiation of the data transfer; and means for processing of the data in the software product to render the application of the software product defined by the data. The computer system above may also be provided wherein the means for initiating a transfer of data to the software product comprises means for loading the data and establishing a connection with the software product. The computer system may also be provided wherein the software product comprises a WebDAV server, the loading is done by an applet and the connection is according to the WebDAV protocol.
And, there is provided a computer implemented interactive tutorial for a software product comprising a browser presenting a tutorial page pertaining to the software product; and a data transfer element to transfer to the software product data related to the tutorial page and defining an application within the software product, the data being processed by the software product to generate the application. The interactive tutorial above may also be provided wherein the software product comprises a repository to store information associated with the application; a views mechanism to present information through a user interface corresponding to the information in the repository and for facilitating updating information in the repository through the user interface; and a WebDAV server to communicate with the browser, to process the data for execution of commands in the software are product and to update the information in the repository. Additionally, the interactive tutorial may be provided wherein the data transfer element is an applet and the data is transferred to the WebDAV server according to the WebDAV protocol. The interactive tutorial may also further comprise a server to provide the tutorial page to the browser. The server also may be the file system serving facility of the browser. The interactive tutorial may be further provided with a user interactivity element to initiate the transfer by the data transfer clement of the data to the software product. Also, the interactive tutorial may be provided wherein the browser is a conventional Web browser and operates contemporaneously with the software product. And, the interactive tutorial may also further comprise a configuration element to configure the tutorial page based on information in the software product through data transfer to the browser.